Video images are captured at a frame rate that is sufficiently high to trick the human brain into perceiving continuous motion when in fact a discrete number of images per second is being presented. In many video processing applications, frame rate conversion is required to ensure that the type of equipment used to process and display images is not constrained by the frame rate used to capture those images.
Because the frame rate conversion process generates output images at time instants not exactly corresponding to those of the input images, a process called motion estimation is required between successive input images. In particular, the motion estimation process outputs a motion vector indicative of a magnitude and direction of apparent motion of one or more pixels from one input image to another. This motion vector is then used in properly situating these one or more pixels in intermediate images by using techniques such as linear interpolation.
In some cases, however, errors in the motion estimation process can occur. For example, when an image exhibiting a horizontal, vertical, diagonal or tilted two-dimensional pattern is subjected to a conventional motion estimation process, the resulting motion vector may be inaccurate. In such instances, an intermediate image generated by interpolation relying on an inaccurate motion vector can result in a degradation of the perceived image quality.
Against this background, there is a need in the industry to provide a motion estimation process that is more robust to the presence of repetitive patterns.